/**
 * @PROJECT_NAME design_patterns Liskov Substitution Principle
 * @DESCRIPTION 李氏替换 任何基类出现的地方，子类一定可以出现，通俗理解：子类可以扩充父类的功能，但不能改变父类的功能，
 * 换句话说，子类继承父类时，除添加新的方法完成新增功能外，尽量不要重新父类的方法
 * 正方形不是长方形
 * Demo1 运行代码发现，正方形的运行resize方法，就会看到正方形的宽度与长度会不断增加，且一直持续下去，直至系统内存溢出，
 * 所以，普通的长方形可适合这段代码，但是正方形会一直运行下去，直至系统产生内存溢出，所以正方形不适合此段代码，
 * 但是李氏替换的原则是子类可以代替父类，这就违背了历史替换的原则
 * 这种如何改进呢？我们需要重新设计他们之间的关系
 * <p>
 * Demo1 违背了李氏替换的原则，子类可以代替父类，Demo2用接口实现，解绑了正方形与长方形的继承关系
 * 这种如何改进呢？我们需要重新设计他们之间的关系
 * 我们需要抽象出一个四边形接口，让rectangle和square类实现quadrilateral接口
 * @AUTHOR CNBruceLee
 * @DATE 2021/6/20 13:11
 */
package com.bruce.demo1.principles.demo2.lsp;

class PackageInfo {
}
